package com.w7vm.menuweb.facade;

import java.util.ArrayList;
import java.util.List;

import javax.ejb.EJB;
import javax.ejb.LocalBean;
import javax.ejb.Remote;
import javax.ejb.Stateless;

import com.w7vm.menuweb.dao.CardapioEspecialidadeDAO;
import com.w7vm.menuweb.entity.CardapioEspecialidadeWeb;
import com.w7vm.menuweb.entity.CardapioInfantilWeb;
import com.w7vm.menuweb.entity.RestauranteFilialWeb;
import com.w7vm.menuweb.entity.RestauranteSedeWeb;
import com.w7vm.menuweb.utility.ConstantesEJB;
import com.w7vm.menuweb.vo.CardapioVO;

/**
 * Session Bean implementation class CardapioG3FacadeImpl
 */
@Stateless(name="CardapioG3EJB")
@Remote(CardapioG3Facade.class)
public class CardapioG3FacadeImpl implements CardapioG3Facade {

    /**
     * Default constructor. 
     */
    public CardapioG3FacadeImpl() {
        // TODO Auto-generated constructor stub
    }

	@EJB
	private CardapioEspecialidadeDAO especialidadeEJB;
	private CardapioEspecialidadeWeb especialidadeEntity = new CardapioEspecialidadeWeb();  

	ConstantesEJB constEJB = new ConstantesEJB();

	
	
	//======== :: METHODs - CARDAPIO ESPECIALIDADE ::======================================================== //
	
		@Override
		public void saveEspecialidade(CardapioEspecialidadeWeb especialidadeEntity){
			especialidadeEJB.saveCardapioEspecialidade(especialidadeEntity);
		}

		@Override
		public CardapioEspecialidadeWeb updateEspecialidade(CardapioEspecialidadeWeb especialidadeEntity){
			return especialidadeEJB.mergeUpdate(especialidadeEntity);
		}

		@Override
		public void deleteLanchePetisco(CardapioEspecialidadeWeb especialidadeEntity){
			especialidadeEJB.deleteCardapioEspecialidade(especialidadeEntity);
		}

		@Override
		public List<CardapioEspecialidadeWeb> findEspecialidadeByIDRestauranteSede(int id) {
			return especialidadeEJB.findCardapioEspecialidadeByIDRestauranteSede(id);
		}

		@Override
		public List<CardapioEspecialidadeWeb> findEspecialidadeByIDRestauranteFilial(int id){
			return especialidadeEJB.findCardapioEspecialidadeByIDRestauranteFilial(id);
		}
		

		@Override
		public CardapioEspecialidadeWeb setCardapioEspecialidadeEntity(CardapioVO cardapioVO){
			especialidadeEntity.setEspecialidade(cardapioVO.getNomeEspecialidade());
			especialidadeEntity.setDescricao(cardapioVO.getDescricao());
			especialidadeEntity.setNomePrato(cardapioVO.getNomePrato());
			especialidadeEntity.setDiasSemana(cardapioVO.getDiasSemana());
			especialidadeEntity.setAcompanhamento(cardapioVO.getAcompanhamento());
			especialidadeEntity.setDtInicio(cardapioVO.getDtInicio());
			especialidadeEntity.setDtTermino(cardapioVO.getDtTermino());
			especialidadeEntity.setStatus(constEJB.AGENDADO_ATIVACAO);
			return especialidadeEntity;
		}
		
		@Override
		public CardapioVO setCardapioEspecialidadeVO(CardapioEspecialidadeWeb especialidadeEntity){
			CardapioVO cardapioVO = new CardapioVO();
			
			cardapioVO.setNomeEspecialidade(especialidadeEntity.getEspecialidade());
			cardapioVO.setDescricao(especialidadeEntity.getDescricao());
			cardapioVO.setAcompanhamento(especialidadeEntity.getAcompanhamento());
			cardapioVO.setDtInicio(especialidadeEntity.getDtInicio());
			cardapioVO.setDtTermino(especialidadeEntity.getDtTermino());

			if(especialidadeEntity.getStatus() == constEJB.AGENDADO_ATIVACAO){
				cardapioVO.setStatus(constEJB.AGENDADO_ATIVACAOs);
			}
			else if(especialidadeEntity.getStatus() == constEJB.ATIVO){
				cardapioVO.setStatus(constEJB.ATIVOs);
			}
			else if(especialidadeEntity.getStatus() == constEJB.INATIVO){
				cardapioVO.setStatus(constEJB.INATIVOs);
			}
			return cardapioVO;
		}

}
